<?php
/**
 * FavoritesController 
 * каталог favorites/
 * закладки пользователя 
 */
class FavoritesController extends AbstractModule{

    private $model;
    private $view;
    public function __construct() {
        parent::__construct();
        $this->setActiveSubmodule('blocklr', 'leftblock');
        //устанавливаем разрешённые страницы каталога, для всех других будет вываливаться 404
        $this->setAllowedPaths(array(
            'show/%text%',
        ));
        //грузим модель и вьюшу
        $this->model = new FavoritesModel();
        $this->view = new FavoritesView();
    }
    public function index() {

        return false;
    }
    /**
     * Отображение страниц закладок в зависимости от аргумента адресной строки
     * на данный момент самая кривая страница на сайте
     * @return boolean 
     */
    public function show() {
        //если юзер не залогинен, 404
        if (!$this->user->isLogged) return false;
        $args = func_get_args();
        $param = $args[0];
        //если не указан аргумент, 404
        if(empty($param)) return false;
        //получаем закладки текущего юзверя
        $data = $this->model->getFavoritesByPage($param, $this->user->user_id);
        //конвертируем в массив строку аргументов
        $res = explode('_', $param);
        
        $class = $res[0].'Controller';

        //если есть такой класс, иначе 404
//        if (is_file(DIR_MODULES . 'default/favorites/Controller/class.' . $class . '.php'))
//            require_once DIR_APPLICATION . 'pages/Controller/class.' . $class . '.php';
//        else
//            return false;
//        
        $pages = array();
        //проходимся по всем закладкам
        foreach ($data as $value) {
            $path = str_replace('_', '/', $value['page']);           

            $pagename = $class::getPageName($path);
            
            $pages['pages'][] = array('pagename'=>$pagename, 'path'=>$path); 
        }
        //получаем основное название страницы закладок
        $pagename = $class::getPageName($res[0]);
        $pages['title'] = 'Избранное &laquo'.$pagename.'&raquo';
        
        $pagedata = array();     
        $pagedata[] = array('data'=> FavoritesView::getTableWithFavorites($pages), 'region'=>'heap');
        $this->output($pagedata);

        return true;
    }

    public function delete() {
        
    }

    public function install() {
        
    }
}
?>